Keras এবং TensorFlow দিয়ে Neural Networks তৈরি করা

Deep Learning এবং Neural Networks - পাইথন ডেটা সায়েন্স (Python Data Science) - Machine Learning

377

Keras এবং TensorFlow হল দুইটি জনপ্রিয় লাইব্রেরি যা ডিপ লার্নিং এবং নিউরাল নেটওয়ার্ক তৈরির জন্য ব্যবহৃত হয়। Keras হল একটি হাই-লেভেল API যা TensorFlow, Theano, অথবা Microsoft Cognitive Toolkit (CNTK) এর ওপরে কাজ করে, এবং TensorFlow হল একটি ওপেন-সোর্স লাইব্রেরি যা ডিপ লার্নিং মডেল তৈরির জন্য ব্যবহৃত হয়।

এই টিউটোরিয়ালে, আমরা Keras এবং TensorFlow ব্যবহার করে একটি সাধারণ neural network তৈরি করব। Neural networks মেশিন লার্নিংয়ের একটি অত্যন্ত শক্তিশালী মেথড, যা ছবি, টেক্সট, এবং অডিও বিশ্লেষণসহ বিভিন্ন ক্ষেত্রে ব্যবহার করা হয়।


১. Keras এবং TensorFlow ইনস্টলেশন

প্রথমে আপনাকে TensorFlow এবং Keras ইনস্টল করতে হবে। সাধারণত, Keras বর্তমানে TensorFlow এর অংশ হিসেবে আসে, তাই TensorFlow ইনস্টল করলে Keras স্বয়ংক্রিয়ভাবে ইনস্টল হয়ে যায়।

ইনস্টলেশন:

pip install tensorflow

এটি ইনস্টল হলে, আপনি TensorFlow এবং Keras ব্যবহার করতে পারবেন।


২. Neural Network তৈরির জন্য ডেটা লোড এবং প্রিপ্রসেসিং

আমরা একটি সাধারণ ডেটাসেট ব্যবহার করব, যেমন MNIST ডেটাসেট, যা হাতে লেখা ডিজিটের ছবি ধারণ করে এবং এটি নিউরাল নেটওয়ার্ক প্রশিক্ষণের জন্য জনপ্রিয়।

MNIST ডেটাসেট লোড করা:

import tensorflow as tf
from tensorflow.keras import layers, models

# MNIST ডেটাসেট লোড
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()

# ডেটা প্রিপ্রসেসিং
x_train, x_test = x_train / 255.0, x_test / 255.0  # পিক্সেল মান 0-255 থেকে 0-1 মধ্যে রিস্কেল করা

৩. Neural Network মডেল তৈরি করা

এখন আমরা একটি নিউরাল নেটওয়ার্ক তৈরি করব। Keras এর মাধ্যমে এটি খুবই সহজ। আমরা একটি Sequential model তৈরি করব, যেখানে প্রত্যেকটি স্তর (layer) পর পর যুক্ত হবে।

নিউরাল নেটওয়ার্ক তৈরি:

model = models.Sequential([
    layers.Flatten(input_shape=(28, 28)),  # ইনপুট ডেটা ফ্ল্যাট করা (28x28 ম্যাট্রিক্স থেকে একক ভেক্টরে)
    layers.Dense(128, activation='relu'),  # প্রথম fully connected layer, 128 ইউনিট
    layers.Dropout(0.2),  # ড্রপআউট, এটি overfitting রোধ করতে সাহায্য করে
    layers.Dense(10, activation='softmax')  # আউটপুট লেয়ার, 10টি ক্লাসের জন্য
])
  • Flatten: এটি ইনপুট ডেটাকে (28x28) একটি একক ভেক্টরে রূপান্তরিত করে, যাতে নেটওয়ার্কে প্রক্রিয়া করা যায়।
  • Dense: এটি fully connected লেয়ার, যেখানে সমস্ত ইনপুট ইউনিট পরবর্তী ইউনিটের সাথে সংযুক্ত থাকে।
  • Dropout: এটি overfitting রোধ করতে সাহায্য করে, প্রতি ব্যাচে কিছু ইউনিট এলোমেলোভাবে নিষ্ক্রিয় করা হয়।
  • Softmax: এটি আউটপুট লেয়ারে ব্যবহার করা হয়, যাতে প্রতিটি ক্লাসের জন্য একটি সম্ভাবনা প্রদান করা হয়।

৪. মডেল কম্পাইল এবং ট্রেনিং

মডেল তৈরি করার পর, আমরা এটি কম্পাইল করব এবং প্রশিক্ষণ শুরু করব। কম্পাইল করার সময়, আমরা একটি loss function, optimizer, এবং metrics সেট করি।

মডেল কম্পাইল করা এবং প্রশিক্ষণ:

# মডেল কম্পাইল করা
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# মডেল প্রশিক্ষণ
model.fit(x_train, y_train, epochs=5)
  • Adam Optimizer: এটি একটি জনপ্রিয় অপটিমাইজার যা দ্রুত এবং কার্যকরী।
  • Loss Function: sparse_categorical_crossentropy ব্যবহার করা হয়েছে কারণ এটি ক্লাসিফিকেশন সমস্যা (multiple classes) সমাধান করছে।
  • Epochs: এটি মডেল কতবার ডেটার উপর প্রশিক্ষিত হবে, এখানে আমরা ৫টি epoch সেট করেছি।

৫. মডেল মূল্যায়ন

মডেল প্রশিক্ষণের পরে, আমরা এটি test data ব্যবহার করে মূল্যায়ন করব এবং এর কার্যকারিতা যাচাই করব।

মডেল মূল্যায়ন:

# মডেল মূল্যায়ন
test_loss, test_acc = model.evaluate(x_test, y_test)
print(f"Test accuracy: {test_acc}")

এটি পরীক্ষা করবে মডেল কতটুকু সঠিকভাবে টেস্ট ডেটার উপর ভবিষ্যদ্বাণী করছে।


৬. মডেল দ্বারা পূর্বাভাস

একবার মডেল প্রশিক্ষিত এবং মূল্যায়িত হলে, এটি নতুন ডেটার জন্য পূর্বাভাস (prediction) দিতে সক্ষম হবে।

পূর্বাভাস:

# নতুন ডেটার জন্য পূর্বাভাস
predictions = model.predict(x_test)

# প্রথম 5টি পূর্বাভাস দেখানো
import numpy as np
print(np.argmax(predictions[0]))  # প্রথম নমুনার জন্য সবচেয়ে সম্ভাব্য ক্লাস

np.argmax(predictions[0]) ব্যবহার করে, আমরা পূর্বাভাসের মধ্যে সর্বোচ্চ সম্ভাবনা সম্পন্ন ক্লাসটি পেয়ে যাব।


সারাংশ

  • Keras এবং TensorFlow দিয়ে নিউরাল নেটওয়ার্ক তৈরি করা খুবই সহজ এবং ব্যবহারকারী-বান্ধব।
  • Keras একটি উচ্চ-স্তরের API যা TensorFlow ব্যবহার করে মডেল তৈরি করা সহজ করে তোলে।
  • TensorFlow হল ডিপ লার্নিং মডেল তৈরি এবং প্রশিক্ষণের জন্য একটি শক্তিশালী লাইব্রেরি।
  • Neural networks বিভিন্ন ধরনের ডেটা যেমন ছবি, টেক্সট, এবং সাউন্ডের জন্য অত্যন্ত কার্যকরী।

এই প্রক্রিয়া ব্যবহার করে আপনি আপনার নিজের ডিপ লার্নিং মডেল তৈরি এবং প্রশিক্ষণ করতে পারেন, যা অনেক ধরনের প্রকল্পে ব্যবহৃত হতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...